অ্যাজাক্স (Ajax)

HTML এবং JavaScript এর সাথে Ajax সংযোগ

Web Development - অ্যাজাক্স (Ajax) - Ajax ইন্সটলেশন এবং সেটআপ (Setting Up Ajax) | NCTB BOOK

HTML এবং JavaScript এর সাথে Ajax সংযোগ করার জন্য আমরা JavaScript ব্যবহার করে XMLHttpRequest অবজেক্টের মাধ্যমে একটি রিকোয়েস্ট পাঠাই এবং HTML ডকুমেন্টে সেই ডেটা ডায়নামিকভাবে আপডেট করি। Ajax এর মাধ্যমে এই সংযোগের প্রক্রিয়াটি খুবই গুরুত্বপূর্ণ, কারণ এটি ওয়েব পেজকে ডায়নামিক এবং ইন্টারেক্টিভ করে তোলে। নিচে HTML এবং JavaScript এর সাথে Ajax সংযোগের একটি পূর্ণাঙ্গ উদাহরণ দেওয়া হলো:

উদাহরণ প্রোগ্রাম: HTML এবং JavaScript এর সাথে Ajax সংযোগ

১. HTML (index.html):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ajax Example</title>
</head>
<body>
    <h1>Ajax Data Load Example</h1>
    <button onclick="fetchData()">Load Data</button>
    <div id="result"></div>

    <script src="app.js"></script>
</body>
</html>

বিস্তারিত ব্যাখ্যা:

  • এখানে একটি HTML ফাইল তৈরি করা হয়েছে যেখানে একটি শিরোনাম (<h1>) এবং একটি বোতাম (<button>) আছে।
  • buttononclick ইভেন্ট হ্যান্ডলার ব্যবহার করা হয়েছে, যা বোতামটি ক্লিক করলে fetchData() ফাংশন কল করবে।
  • result নামে একটি <div> এলিমেন্ট রয়েছে যেখানে আমরা Ajax থেকে প্রাপ্ত ডেটা ডায়নামিকভাবে দেখাব।
  • JavaScript কোড app.js ফাইলে রয়েছে, যা HTML এর শেষে যুক্ত করা হয়েছে।

২. JavaScript (app.js):

function fetchData() {
    // XMLHttpRequest অবজেক্ট তৈরি করা
    var xhr = new XMLHttpRequest();
    
    // রিকোয়েস্ট ওপেন করা (GET মেথড, URL এবং অ্যাসিনক)
    xhr.open("GET", "https://jsonplaceholder.typicode.com/posts/1", true);
    
    // রেসপন্স প্রস্তুত হলে কি করবে তা নির্ধারণ করা
    xhr.onreadystatechange = function() {
        if (xhr.readyState === 4 && xhr.status === 200) {
            // JSON ডেটা রিসিভ করা এবং প্রসেস করা
            var data = JSON.parse(xhr.responseText);
            
            // HTML ডকুমেন্টে ডেটা আপডেট করা
            document.getElementById("result").innerHTML = `
                <h2>${data.title}</h2>
                <p>${data.body}</p>
            `;
        } else if (xhr.readyState === 4 && xhr.status !== 200) {
            // এরর মেসেজ দেখানো যদি রিকোয়েস্ট ব্যর্থ হয়
            document.getElementById("result").innerHTML = "Error loading data!";
        }
    };
    
    // রিকোয়েস্ট পাঠানো
    xhr.send();
}

বিস্তারিত ব্যাখ্যা:

১. XMLHttpRequest অবজেক্ট তৈরি:

  • fetchData() ফাংশনটি প্রথমে একটি XMLHttpRequest অবজেক্ট তৈরি করে, যা Ajax রিকোয়েস্ট পরিচালনা করার জন্য ব্যবহৃত হয়।

২. রিকোয়েস্ট সেটআপ করা:

  • xhr.open("GET", "URL", true) দিয়ে একটি GET রিকোয়েস্ট সেটআপ করা হয়েছে, যা সার্ভারের URL থেকে ডেটা আনবে। "true" মানে রিকোয়েস্টটি অ্যাসিনক্রোনাস হবে।

৩. onreadystatechange ইভেন্ট:

  • xhr.onreadystatechange ইভেন্ট হ্যান্ডলার ব্যবহার করে আমরা রিকোয়েস্টের অবস্থা চেক করেছি।
  • যদি xhr.readyState === 4 (যখন রিকোয়েস্ট সম্পূর্ণ) এবং xhr.status === 200 (যখন রিকোয়েস্ট সফল), তখন JSON ডেটা প্রসেস করে HTML ডিভে (result) আপডেট করা হয়েছে।
  • যদি কোনো কারণে রিকোয়েস্ট ব্যর্থ হয় (যেমন xhr.status ২০০ না হয়), তাহলে একটি এরর মেসেজ দেখানো হয়েছে।

৪. রিকোয়েস্ট পাঠানো:

  • xhr.send(); দিয়ে রিকোয়েস্টটি সার্ভারে পাঠানো হয়েছে।

৩. সার্ভার রেসপন্স:

এই উদাহরণে আমরা একটি ডেমো API (https://jsonplaceholder.typicode.com/posts/1) ব্যবহার করেছি, যা নিচের মতো JSON ডেটা প্রদান করে:

{
    "userId": 1,
    "id": 1,
    "title": "Sample Title",
    "body": "This is a sample body text."
}

৪. প্রোগ্রামটি কীভাবে কাজ করে:

  • যখন ইউজার "Load Data" বোতামটি ক্লিক করে, তখন fetchData() ফাংশন কল হয়।
  • ফাংশনটি সার্ভারে Ajax রিকোয়েস্ট পাঠায় এবং JSON ডেটা রিসিভ করে।
  • রিসিভ করা ডেটা HTML ডিভ (result) এ আপডেট করা হয়, ফলে ইউজার নতুন ডেটা দেখতে পারে পেজ রিলোড না করেই।

সারসংক্ষেপ:

এই প্রোগ্রামে HTML, JavaScript, এবং Ajax এর মধ্যে সংযোগ দেখানো হয়েছে। XMLHttpRequest অবজেক্টের মাধ্যমে Ajax রিকোয়েস্ট করা হয়েছে, এবং প্রাপ্ত ডেটা HTML ডকুমেন্টে ইনজেক্ট করা হয়েছে। এটি একটি বেসিক কিন্তু গুরুত্বপূর্ণ পদ্ধতি, যা ডায়নামিক ওয়েব অ্যাপ্লিকেশন তৈরিতে ব্যবহৃত হয়।

Promotion